Normalize key sequences from -add-key-based-replacements
authorJustin Burkett <justin@burkett.cc>
Tue, 29 Nov 2016 13:38:21 +0000 (08:38 -0500)
committerJustin Burkett <justin@burkett.cc>
Tue, 29 Nov 2016 13:38:21 +0000 (08:38 -0500)
which-key.el

index 9acb29bb2d47232e6c5a74f81db0f7e1a25bc606..496d2cbebd7e0052b3e84bfeb7d573abe33eb32c 100644 (file)
@@ -808,12 +808,14 @@ replacements are added to
 `which-key-key-based-description-replacement-alist'."
   ;; TODO: Make interactive
   (while key-sequence
-    (push (cons (cons (format "\\`%s\\'" key-sequence) nil)
-                (cons nil (or (car-safe replacement) replacement)))
-           which-key-replacement-alist)
-    (when (consp replacement)
-      (push (cons key-sequence (cdr-safe replacement))
-            which-key--prefix-title-alist))
+    ;; normalize key sequences before adding
+    (let ((key-seq (key-description (kbd key-sequence))))
+      (push (cons (cons (format "\\`%s\\'" key-seq) nil)
+                  (cons nil (or (car-safe replacement) replacement)))
+            which-key-replacement-alist)
+      (when (consp replacement)
+        (push (cons key-seq (cdr-safe replacement))
+              which-key--prefix-title-alist)))
     (setq key-sequence (pop more) replacement (pop more))))
 (put 'which-key-add-key-based-replacements 'lisp-indent-function 'defun)
 
@@ -832,12 +834,14 @@ addition KEY-SEQUENCE REPLACEMENT pairs) to apply."
         (title-mode-alist
          (or (cdr-safe (assq mode which-key--prefix-title-alist)) (list))))
     (while key-sequence
-      (push (cons (cons (format "\\`%s\\'" key-sequence) nil)
-                  (cons nil (or (car-safe replacement) replacement)))
-            mode-alist)
-      (when (consp replacement)
-        (push (cons key-sequence (cdr-safe replacement))
-              title-mode-alist))
+    ;; normalize key sequences before adding
+      (let ((key-seq (key-description (kbd key-sequence))))
+        (push (cons (cons (format "\\`%s\\'" key-seq) nil)
+                    (cons nil (or (car-safe replacement) replacement)))
+              mode-alist)
+        (when (consp replacement)
+          (push (cons key-seq (cdr-safe replacement))
+                title-mode-alist)))
       (setq key-sequence (pop more) replacement (pop more)))
     (if (assq mode which-key-replacement-alist)
         (setcdr (assq mode which-key-replacement-alist) mode-alist)